Version bêta de Chrome 138

Publié le 28 mai 2025

Sauf indication contraire, les modifications suivantes s'appliquent à la dernière version du canal bêta de Chrome pour Android, ChromeOS, Linux, macOS et Windows. Pour en savoir plus sur les fonctionnalités listées ici, consultez les liens fournis ou la liste sur ChromeStatus.com. Chrome 138 est en version bêta depuis le 28 mai 2025. Vous pouvez télécharger la dernière version sur Google.com pour ordinateur ou sur le Google Play Store sur Android.

CSS et UI

Cette version ajoute six nouvelles fonctionnalités CSS et d'UI.

Mot clé de dimensionnement CSS stretch

Mot clé pour les propriétés de dimensionnement CSS (par exemple, width et height) qui permet aux éléments de se développer pour remplir exactement l'espace disponible de leur bloc contenant. Il est semblable à 100%, sauf que la taille obtenue est appliquée à la marge de l'élément au lieu de la zone indiquée par box-sizing. L'utilisation de ce mot clé permet à l'élément de conserver ses marges tout en étant aussi grand que possible.

Les fonctions liées au signe abs() et sign() calculent diverses fonctions liées au signe de leur argument.

Variable d'environnement CSS pour l'échelle de police au niveau de l'OS

Expose l'échelle de police préférée de l'utilisateur au CSS. Actuellement, il n'est pas pratique pour une page de détecter si l'utilisateur a modifié sa taille de police préférée avec les préférences du système d'exploitation. Cette variable d'environnement CSS reflète l'échelle choisie par l'utilisateur.

CSS sibling-index() et sibling-count()

Les fonctions sibling-index() et sibling-count() peuvent être utilisées en tant qu'entiers dans les valeurs de propriété CSS pour styliser un élément en fonction de sa position parmi ses frères et sœurs, ou du nombre total de frères et sœurs, respectivement. Ces fonctions peuvent être utilisées directement en tant que valeurs entières, mais plus intéressant encore, dans des expressions calc().

li {
  animation-delay: calc(0.1s * sibling-index());
}

Notation fonctionnelle de la progression de l'interpolation: fonction CSS progress()

La notation fonctionnelle progress() est une fonction mathématique qui renvoie une valeur <number> représentant la position d'un calcul (la valeur de progression) entre deux autres calculs (la valeur de début de progression et la valeur de fin de progression).

API Enumeration Viewport Segments

L'API Viewport Segments permet aux développeurs d'adapter leur mise en page Web pour cibler les appareils pliables. Les segments de fenêtre d'affichage définissent la position et les dimensions d'une région distincte de la fenêtre d'affichage. Les segments de fenêtre d'affichage sont créés lorsque la fenêtre d'affichage est divisée par une ou plusieurs fonctionnalités matérielles (comme un pli ou une charnière entre des écrans distincts) qui servent de séparateur. Les segments sont les régions de la fenêtre d'affichage qui peuvent être traitées comme distinctes du point de vue logique par le développeur.

API Web

Ajout de la prise en charge des métadonnées d'orientation des images vidéo dans WebCodecs

Introduit les valeurs rotation: int et flip: bool dans diverses interfaces liées aux vidéos dans WebCodecs afin que les développeurs puissent travailler avec des sources de frames ayant une orientation (par exemple, les caméras Android et certains supports multimédias). L'interface VideoFrame permet de créer des VideoFrames avec une rotation et un retournement arbitraires, ainsi que des accésseurs pour ces informations sur l'objet VideoFrame. L'objet VideoDecoderConfig gagne des champs rotation et flip qui sont automatiquement émis sur les objets VideoFrame décodés. La classe VideoEncoder bénéficie de mécanismes permettant de transmettre des informations de rotation et de retournement de encode() à la VideoDecoderConfig émise dans le cadre de EncodedVideoChunkMetadata. Si encode() est appelé avec des trames d'orientation différente, une exception non fatale est générée. La méthode configure() permet de réinitialiser l'orientation autorisée.

API Crash Reporting: is_top_level et visibility_state

Cette fonctionnalité ajoute des champs de chaîne is_top_level et visibility_state au corps de l'API de création de rapports sur les plantages qui est envoyé au point de terminaison de création de rapports par défaut pour les rapports sur les plantages.

Échappez à < et > dans les attributs lors de la sérialisation

Échappez < et > dans les valeurs des attributs lors de la sérialisation. Cela réduit le risque d'attaques XSS de mutation, qui se produisent lorsque la valeur d'un attribut est interprétée comme un jeton de balise de début après avoir été sérialisée et réanalysée.

Règlement sur l'intégrité des scripts

La sous-ressource Integrity (SRI) permet aux développeurs de s'assurer que les composants qu'ils prévoient de charger sont bien ceux qu'ils chargent. Toutefois, il n'existe actuellement aucun moyen pour les développeurs de s'assurer que tous leurs scripts sont validés à l'aide de SRI. L'en-tête Integrity-Policy permet aux développeurs d'affirmer que chaque ressource d'un type donné doit être vérifiée pour son intégrité. Si une tentative de chargement d'une ressource de ce type est effectuée sans métadonnées d'intégrité, la tentative échoue et un rapport de non-respect est généré.

Quota de stockage enregistré prévisible

Enregistrez un quota de stockage prévisible à partir de l'API Estimate de StorageManager pour les sites qui ne disposent pas d'autorisations de stockage illimitées. Il est possible de détecter le mode de navigation d'un utilisateur à l'aide du quota de stockage indiqué, car l'espace de stockage disponible est nettement plus petit en mode navigation privée qu'en mode normal.

Il s'agit d'une mesure d'atténuation qui empêche la détection du mode de navigation d'un utilisateur à l'aide de l'API de stockage en signalant un quota artificiel, égal à l'utilisation + min(10 Go, disque arrondi à l'entier le plus proche de 1 Go), dans tous les modes de navigation pour les sites disposant d'autorisations de stockage limitées. Les sites disposant d'autorisations de stockage illimitées ne seront pas concernés. Le quota appliqué ne sera pas non plus affecté.

Événement pushsubscriptionchange lors du réabonnement

Déclenchez l'événement pushsubscriptionchange dans les service workers lorsqu'une origine pour laquelle un abonnement push existait auparavant, mais qui a été révoquée en raison d'un changement d'autorisation (de l'autorisation à l'interdiction/par défaut), est à nouveau autorisée à envoyer des notifications. L'événement sera déclenché avec une oldSubscription et une newSubscription vides.

Règles de spéculation: ajout de prefetchCache et prerenderCache à l'en-tête Clear-Site-Data

Deux nouvelles valeurs pour l'en-tête Clear-Site-Data pour aider les développeurs à cibler l'effacement du cache de préchargement et de préchargement: prefetchCache et prerenderCache. Ils peuvent être envoyés pour toutes les requêtes et ne doivent pas être effectués pour la requête de document (par exemple, ils peuvent être renvoyés pour les réponses aux appels d'API d'ajout au panier, de connexion et de déconnexion afin d'éliminer les spéculations sur le changement d'état).

Règles de spéculation: champ target_hint

Cela étend la syntaxe des règles de spéculation pour permettre aux développeurs de spécifier le champ target_hint. Ce champ fournit un indice pour indiquer une cible navigable où une page prérendue sera éventuellement activée. Lorsque _blank est spécifié comme indice, une page prérendue peut être activée pour une page ouverte par window.open(). Le champ n'est pas compatible avec le préchargement.

Règle stricte de même origine pour l'API Storage Access

Ajuste la sémantique de l'API Storage Access pour respecter strictement la règle de même origine, en termes de sécurité. Autrement dit, l'utilisation de document.requestStorageAccess() dans un frame n'associe par défaut que les cookies aux requêtes envoyées à l'origine de l'iFrame (et non au site).

API Summarizer

API JavaScript permettant de générer des résumés du texte saisi, basés sur un modèle de langage d'IA. Les navigateurs et les systèmes d'exploitation sont de plus en plus censés accéder à un modèle de langage. En exposant ce modèle intégré, nous évitons à chaque site Web de devoir télécharger son propre modèle de langage de plusieurs gigaoctets ou d'envoyer du texte saisi à des API tierces. L'API de résumé expose en particulier une API de haut niveau pour l'interface avec un modèle de langage afin de résumer les entrées pour divers cas d'utilisation, de manière à ne pas dépendre du modèle de langage spécifique en question. Une règle d'entreprise (GenAILocalFoundationalModelSettings) est disponible pour désactiver le téléchargement du modèle sous-jacent, ce qui rendrait cette API indisponible.

Pour en savoir plus, consultez Générer des résumés concis avec l'IA intégrée.

API Language Detector

API JavaScript permettant de détecter la langue utilisée dans un texte donné, avec des niveaux de confiance. La détection de la langue est un complément important de la traduction et peut être utilisée en combinaison avec l'API Translator. Par exemple, vous pouvez saisir une entrée utilisateur dans une langue inconnue, déterminer sa langue, puis la traduire dans une langue cible spécifique. Bien que les navigateurs disposent souvent déjà de fonctionnalités de détection de la langue, cela offre la même puissance aux développeurs Web avec une API JavaScript, en complément de l'API de traduction.

Une règle d'entreprise (GenAILocalFoundationalModelSettings) permet de désactiver le téléchargement du modèle sous-jacent, ce qui rend cette API indisponible.

Pour en savoir plus, consultez Détecter la langue utilisée avec l'IA intégrée.

API Translator

API JavaScript permettant de fournir des fonctionnalités de traduction de langue aux pages Web. Bien que les navigateurs proposent de plus en plus de traductions aux utilisateurs, ces fonctionnalités peuvent également être utiles aux développeurs Web. C'est particulièrement le cas lorsque les fonctionnalités de traduction intégrées du navigateur ne peuvent pas aider, comme pour les services en direct et interactifs. Une règle d'entreprise (GenAILocalFoundationalModelSettings) est disponible pour désactiver le téléchargement du modèle sous-jacent, ce qui rendrait cette API indisponible.

Pour en savoir plus, consultez Traduction avec l'IA intégrée.

Extensions de champ d'application des applications Web

Ajoute un champ de fichier manifeste d'application Web "scope_extensions" qui permet aux applications Web d'étendre leur champ d'application à d'autres origines. Cela permet aux sites qui contrôlent plusieurs sous-domaines et domaines de premier niveau d'être présentés comme une seule application Web. Les origines listées doivent confirmer l'association à l'application Web à l'aide d'un fichier de configuration .well-known/web-app-origin-association.

Communication série Web via Bluetooth sur Android

Cette fonctionnalité permet aux pages Web et aux applications Web de se connecter aux ports série via Bluetooth sur les appareils Android. Chrome sur Android est désormais compatible avec l'API Web Serial via Bluetooth RFCOMM. Les stratégies d'entreprise existantes (DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrls et SerialBlockedForUrls) sur d'autres plates-formes sont activées dans les états future_on pour Android. Toutes les règles, à l'exception de SerialAllowUsbDevicesForUrls, seront activées une fois la fonctionnalité activée. SerialAllowUsbDevicesForUrls sera activé lors d'un prochain lancement, une fois qu'Android aura pris en charge les ports série filaires au niveau du système.

Abandons et suppressions

Cette version de Chrome introduit les abandons et suppressions suivants. Consultez ChromeStatus.com pour obtenir la liste des fonctionnalités abandonnées prévues, des fonctionnalités abandonnées en cours et des fonctionnalités supprimées précédemment.

Cette version de Chrome abandonne deux fonctionnalités.

Abandon de la suppression de plage asynchrone pour les extensions de source multimédia

La norme Media Source a été modifiée il y a longtemps pour interdire les comportements définis de manière ambiguë impliquant des suppressions de plage asynchrones:

  • SourceBuffer.abort() n'interrompt plus les opérations SourceBuffer.remove().
  • Le paramètre MediaSource.duration ne peut plus tronquer les contenus multimédias actuellement mis en mémoire tampon.

Des exceptions seront désormais générées dans les deux cas.

Suppression du remplacement SwiftShader

Le remplacement automatique par WebGL via le moteur de rendu logiciel SwiftShader est obsolète. La création d'un contexte WebGL échouera au lieu de basculer vers SwiftShader. Cette décision a été prise pour deux raisons principales:

  1. SwiftShader présente un risque de sécurité élevé en raison du code JIT exécuté dans le processeur graphique de Chromium.
  2. L'expérience utilisateur est médiocre lors du passage d'une implémentation WebGL hautes performances basée sur un GPU à une implémentation basée sur un processeur. Les utilisateurs n'ont aucun contrôle sur ce comportement, et il est difficile de le décrire dans les rapports de bugs.

Pendant la période d'abandon, un avertissement s'affichera dans la console des outils pour les développeurs Chrome lorsqu'un contexte WebGL sera créé et pris en charge par SwiftShader. Si vous spécifiez --enable-unsafe-swiftshader, ce message d'avertissement sera supprimé.